Exchange Installation Fails with Error "Microsoft.Exchange.Management.Met abase.IISGeneralCOMException: An IIS directory entry couldn't be created. The error message is The system cannot find the path specified. . HResult = -2147024893 ---> System.Runtime

Hi, all,

Exchange 2013 installation fails. This is the console output and the tail of ExchangeSetup.log:

c:\Exchange2013CU8_Latest>Setup.exe /mode:Install /on:"Sparta" /r:CA,MB /IAcceptExchangeServerLicenseTerms

Welcome to Microsoft Exchange Server 2013 Cumulative Update 8 Unattended Setup
Copying Files...
File copy complete. Setup will now collect additional information needed for installation.
Languages
Management tools
Mailbox role: Transport service
Mailbox role: Client Access service
Mailbox role: Unified Messaging service
Mailbox role: Mailbox service
Client Access role: Front End Transport service
Client Access role: Client Access Front End service

Performing Microsoft Exchange Server Prerequisite Check

    Configuring Prerequisites                                                                                                                                     COMPLETED
    Prerequisite Analysis                                                                                                                                         COMPLETED

Configuring Microsoft Exchange Server

    Preparing Setup                                                                                                                                               COMPLETED
    Stopping Services                                                                                                                                             COMPLETED
    Copying Exchange Files                                                                                                                                        COMPLETED
    Language Files                                                                                                                                                COMPLETED
    Restoring Services                                                                                                                                            COMPLETED
    Language Configuration                                                                                                                                        COMPLETED
    Exchange Management Tools                                                                                                                                     COMPLETED
    Mailbox role: Transport service                                                                                                                               FAILED
     The following error was generated when "$error.Clear();
          Install-ExchangeCertificate -services IIS -DomainController $RoleDomainController
          if ($RoleIsDatacenter -ne $true -And $RoleIsPartnerHosted -ne $true)
          {
            Install-AuthCertificate -DomainController $RoleDomainController
          }
        " was run: "Microsoft.Exchange.Management.Metabase.IISGeneralCOMException: An IIS directory entry couldn't be created. The error message is The system cannot find the path
specified.
. HResult = -2147024893 ---> System.Runtime.InteropServices.COMException: The system cannot find the path specified.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.RefreshCache()
   at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
   at System.DirectoryServices.PropertyCollection.KeysCollection.GetEnumerator()
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetProperties(DirectoryEntry webObj)
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetProperties(DirectoryEntry webObj)
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetWebSiteSslCertificate(String webObjectPath)
   at Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.FindIisCertificate()
   at Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".


The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder.

--------------------------------------------------------------------------------------------------------------------

[04/09/2015 08:17:37.0653] [2] Active Directory session settings for 'Install-ServiceHost' are: View Entire Forest: 'True', Configuration Domain Controller: 'maxwell.world.local', Preferred Global Catalog: 'maxwell.world.local', Preferred Domain Controllers: '{ maxwell.world.local }'
[04/09/2015 08:17:37.0653] [2] User specified parameters: 
[04/09/2015 08:17:37.0653] [2] Beginning processing install-ServiceHost
[04/09/2015 08:17:37.0716] [2] Ending processing install-ServiceHost
[04/09/2015 08:17:37.0731] [1] Processing component 'BridgeheadExchangeCertificate' (Installing Microsoft Exchange Hub Transport certificates).
[04/09/2015 08:17:37.0731] [1] Executing: 
          Install-ExchangeCertificate -services IIS -DomainController $RoleDomainController
          if ($RoleIsDatacenter -ne $true -And $RoleIsPartnerHosted -ne $true)
          {
            Install-AuthCertificate -DomainController $RoleDomainController
          }
        
[04/09/2015 08:17:37.0747] [2] Active Directory session settings for 'Install-ExchangeCertificate' are: View Entire Forest: 'True', Configuration Domain Controller: 'maxwell.world.local', Preferred Global Catalog: 'maxwell.world.local', Preferred Domain Controllers: '{ maxwell.world.local }'
[04/09/2015 08:17:37.0747] [2] User specified parameters:  -Services:'IIS' -DomainController:'maxwell.world.local'
[04/09/2015 08:17:37.0747] [2] Beginning processing Install-ExchangeCertificate
[04/09/2015 08:17:38.0481] [2] [ERROR] An IIS directory entry couldn't be created. The error message is The system cannot find the path specified.
. HResult = -2147024893
[04/09/2015 08:17:38.0481] [2] [ERROR] The system cannot find the path specified.

[04/09/2015 08:17:38.0497] [2] Ending processing Install-ExchangeCertificate
[04/09/2015 08:17:38.0497] [2] Active Directory session settings for 'Install-AuthCertificate' are: View Entire Forest: 'True', Configuration Domain Controller: 'maxwell.world.local', Preferred Global Catalog: 'maxwell.world.local', Preferred Domain Controllers: '{ maxwell.world.local }'
[04/09/2015 08:17:38.0497] [2] User specified parameters:  -DomainController:'maxwell.world.local'
[04/09/2015 08:17:38.0497] [2] Beginning processing Install-AuthCertificate
[04/09/2015 08:17:38.0747] [2] Ending processing Install-AuthCertificate
[04/09/2015 08:17:38.0762] [1] The following 1 error(s) occurred during task execution:
[04/09/2015 08:17:38.0762] [1] 0.  ErrorRecord: An IIS directory entry couldn't be created. The error message is The system cannot find the path specified.
. HResult = -2147024893
[04/09/2015 08:17:38.0762] [1] 0.  ErrorRecord: Microsoft.Exchange.Management.Metabase.IISGeneralCOMException: An IIS directory entry couldn't be created. The error message is The system cannot find the path specified.
. HResult = -2147024893 ---> System.Runtime.InteropServices.COMException: The system cannot find the path specified.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.RefreshCache()
   at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
   at System.DirectoryServices.PropertyCollection.KeysCollection.GetEnumerator()
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetProperties(DirectoryEntry webObj)
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetProperties(DirectoryEntry webObj)
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetWebSiteSslCertificate(String webObjectPath)
   at Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.FindIisCertificate()
   at Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)
[04/09/2015 08:17:38.0762] [1] [ERROR] The following error was generated when "$error.Clear(); 
          Install-ExchangeCertificate -services IIS -DomainController $RoleDomainController
          if ($RoleIsDatacenter -ne $true -And $RoleIsPartnerHosted -ne $true)
          {
            Install-AuthCertificate -DomainController $RoleDomainController
          }
        " was run: "Microsoft.Exchange.Management.Metabase.IISGeneralCOMException: An IIS directory entry couldn't be created. The error message is The system cannot find the path specified.
. HResult = -2147024893 ---> System.Runtime.InteropServices.COMException: The system cannot find the path specified.

   at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
   at System.DirectoryServices.DirectoryEntry.Bind()
   at System.DirectoryServices.DirectoryEntry.RefreshCache()
   at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
   at System.DirectoryServices.PropertyCollection.KeysCollection.GetEnumerator()
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetProperties(DirectoryEntry webObj)
   --- End of inner exception stack trace ---
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetProperties(DirectoryEntry webObj)
   at Microsoft.Exchange.Management.Metabase.IisUtility.GetWebSiteSslCertificate(String webObjectPath)
   at Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.FindIisCertificate()
   at Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.InternalProcessRecord()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".
[04/09/2015 08:17:38.0762] [1] [ERROR] An IIS directory entry couldn't be created. The error message is The system cannot find the path specified.
. HResult = -2147024893
[04/09/2015 08:17:38.0762] [1] [ERROR] The system cannot find the path specified.

[04/09/2015 08:17:38.0778] [1] [ERROR-REFERENCE] Id=BridgeheadExchangeCertificate___36d297b411f94919bc8c6ba9c9c39131 Component=EXCHANGE14:\Current\Release\Shared\Datacenter\Setup
[04/09/2015 08:17:38.0778] [1] Setup is stopping now because of one or more critical errors.
[04/09/2015 08:17:38.0778] [1] Finished executing component tasks.
[04/09/2015 08:17:38.0825] [1] Ending processing Install-BridgeheadRole
[04/09/2015 08:17:38.0825] [0] CurrentResult console.ProcessRunInternal:198: 1
[04/09/2015 08:17:38.0841] [0] CurrentResult launcherbase.maincore:90: 1
[04/09/2015 08:17:38.0841] [0] CurrentResult console.startmain:52: 1
[04/09/2015 08:17:38.0841] [0] CurrentResult SetupLauncherHelper.loadassembly:452: 1
[04/09/2015 08:17:38.0841] [0] The Exchange Server setup operation didn't complete.  More details can be found in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder.
[04/09/2015 08:17:38.0841] [0] CurrentResult main.run:235: 1
[04/09/2015 08:17:38.0841] [0] CurrentResult setupbase.maincore:396: 1
[04/09/2015 08:17:38.0841] [0] End of Setup
[04/09/2015 08:17:38.0841] [0] **********************************************

April 9th, 2015 4:43am

ok, i passed this issue after creating the default web server and adding bindings and cleaning up the old exchange certificates :P

However, now it fails on other point. Please help again ...

Welcome to Microsoft Exchange Server 2013 Cumulative Update 8 Unattended Setup
Copying Files...
File copy complete. Setup will now collect additional information needed for installation.
Languages
Management tools
Mailbox role: Transport service
Mailbox role: Client Access service
Mailbox role: Unified Messaging service
Mailbox role: Mailbox service
Client Access role: Front End Transport service
Client Access role: Client Access Front End service

Performing Microsoft Exchange Server Prerequisite Check

    Configuring Prerequisites                                                                         COMPLETED
    Prerequisite Analysis                                                                             COMPLETED

Configuring Microsoft Exchange Server

    Preparing Setup                                                                                   COMPLETED
    Stopping Services                                                                                 COMPLETED
    Copying Exchange Files                                                                            COMPLETED
    Language Files                                                                                    COMPLETED
    Restoring Services                                                                                COMPLETED
    Language Configuration                                                                            COMPLETED
    Exchange Management Tools                                                                         COMPLETED
    Mailbox role: Transport service                                                                   COMPLETED
    Mailbox role: Client Access service                                                               COMPLETED
    Mailbox role: Unified Messaging service                                                           COMPLETED
    Mailbox role: Mailbox service                                                                     FAILED
     The following error was generated when "$error.Clear();
          if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated)
          {
            $createNewOab = $false;
            $oabName = $null;
            $oabAddressList = $null;
            $oabVdirs = $null;
            $oabGlobalWebDistribution = $false;
            $oabConfiguredAttributes = $null;

            Write-ExchangeSetupLog -Info ("Looking for an existing default OAB");
            $defaultOab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.IsDefault};
            if ($defaultOab -ne $null)
            {
              Write-ExchangeSetupLog -Info ("Found a default OAB: " + $defaultOab.Name + "; checking its version");
              if ($defaultOab.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -
lt 0)
              {
                $e15Oab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.ExchangeVersion.Com
pareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -eq 0};
                if ($e15Oab -eq $null)
                {
                  Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2010 or older; will create a new OAB");
                  $createNewOab = $true;
                  $oabName = $defaultOab.Name + " (Ex2013)";
                  $oabAddressList = $defaultOab.AddressLists;
                  $oabGlobalWebDistribution = $defaultOab.GlobalWebDistributionEnabled;
                  $oabConfiguredAttributes = $defaultOab.ConfiguredAttributes;
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Already has an existing Exchange 2013 OAB:" + $e15Oab.Name + "; will no
t create a new OAB");
                }
              }
              else
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2013 or newer; will not create a new OAB");
              }
            }
            else
            {
              Write-ExchangeSetupLog -Info ("Did not find a default OAB; will create one");
              $createNewOab = $true;

              $oabName = [Microsoft.Exchange.Data.Directory.SystemConfiguration.OfflineAddressBook]::DefaultName;
              $nonDefaultOabWithDefaultName = Get-OfflineAddressBook $oabName -DomainController:$RoleDomainController -E
rrorAction SilentlyContinue | where {$_.IsDefault -eq $false};
              if ($nonDefaultOabWithDefaultName -ne $null)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Offline address book " + `
                  $nonDefaultOabWithDefaultName.Name + `
                  " already exists: " + `
                  $nonDefaultOabWithDefaultName.DistinguishedName + `
                  ". Use administrative tools to change it to default OAB.");
              }

              $allGals = @(Get-GlobalAddressList -DomainController:$RoleDomainController | where {$_.IsDefaultGlobalAddr
essList});
              if ($allGals -eq $null -or $allGals.Count -eq 0)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Couldn't find the default global address list. The default offline address book can't be created.");

              }
              elseif ($allGals.Count -gt 1)
              {
                $createNewOab = $false;
                Write-ExchangeSetupLog -Warning `
                  ("Found " + $allGals.Count + " default global address lists. You can have only one default global addr
ess list in your organization. The default offline address book will not be created.");
              }
              else
              {
                $oabAddressList = $allGals[0];
                Write-ExchangeSetupLog -Info ("OAB will be based on default GAL: " + $oabAddressList.Name);
              }
            }

            if ($createNewOab)
            {
              if ($oabGlobalWebDistribution -eq $false)
              {
                $currentAdSiteDn = (Get-ExchangeServer $RoleFqdnOrName -DomainController:$RoleDomainController).Site.Dis
tinguishedName;
                $allOabVdirs = @(Get-OabVirtualDirectory -ADPropertiesOnly -DomainController:$RoleDomainController);
                $e15MinimumServerVersion = New-Object Microsoft.Exchange.Data.ServerVersion([Microsoft.Exchange.Data.Dir
ectory.SystemConfiguration.Server]::E15MinVersion);
                if ($allOabVdirs -ne $null -and $allOabVdirs.Count -gt 0)
                {
                  foreach ($oabVdir in $allOabVdirs)
                  {
                    if ([Microsoft.Exchange.Data.ServerVersion]::Compare($oabVdir.AdminDisplayVersion, $e15MinimumServer
Version) -gt 0)
                    {
                      $oabVdirSiteDn = (Get-ExchangeServer $oabVdir.Server -DomainController:$RoleDomainController).Site
.DistinguishedName;
                      if ($oabVdirSiteDn -eq $currentAdSiteDn)
                      {
                        $oabVdirs = $oabVdir;
                        break;
                      }
                      elseif ($oabVdirs -eq $null)
                      {
                        $oabVdirs = $oabVdir;
                      }
                    }
                  }
                }

                if ($oabVdirs -ne $null)
                {
                  Write-ExchangeSetupLog -Info ("OAB will be distributed to OAB virtual directory " + $oabVdirs.Name);
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Could not find any OAB virtual directories; OAB will be configured with
out distribution.");
                }
              }

              try
              {
                Write-ExchangeSetupLog -Info ("Creating new default OAB.");
                $newOab = New-OfflineAddressBook `
                  -Name $oabName `
                  -AddressLists $oabAddressList `
                  -VirtualDirectories $oabVdirs `
                  -GlobalWebDistributionEnabled $oabGlobalWebDistribution `
                  -IsDefault $true `
                  -DomainController:$RoleDomainController;
              }
              catch [Microsoft.Exchange.Data.Directory.ADObjectAlreadyExistsException]
              {
                Write-ExchangeSetupLog -Warning ("Tried to create new default OAB but the object already exists; it may
have been created by another instance of setup.");
              }

              if ($oabConfiguredAttributes -ne $null)
              {
                Write-ExchangeSetupLog -Info ("Setting OAB ConfiguredAttributes to: " + $oabConfiguredAttributes);
                Set-OfflineAddressBook $newOab -ConfiguredAttributes $oabConfiguredAttributes -DomainController:$RoleDom
ainController;
              }
            }
          }
        " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.
   at Microsoft.Exchange.Data.Directory.ADDataSession.ObjectsFromEntries[TResult](SearchResultEntryCollection entries, S
tring originatingServerName, IEnumerable`1 properties, ADRawEntry dummyInstance)
   at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1.GetNextPage()
   at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1.<GetEnumerator>d__0.MoveNext()
   at Microsoft.Exchange.Data.Storage.OrganizationMailbox.InternalGetOrganizationMailboxesByCapability(IRecipientSession
 session, OrganizationCapability capability, QueryFilter optionalFilter)
   at Microsoft.Exchange.ProvisioningAgent.NewOfflineAddressbookProvisioningHandler.FindGeneratingMailbox(String domainC
ontroller, OrganizationId orgId)
   at Microsoft.Exchange.ProvisioningAgent.NewOfflineAddressbookProvisioningHandler.ProvisionDefaultProperties(IConfigur
able readOnlyIConfigurable)
   at Microsoft.Exchange.Provisioning.ProvisioningLayer.ProvisionDefaultPropertiesImpl(Task task, IConfigurable temporar
yObject, IConfigurable dataObject, Boolean checkProvisioningLayerAvailability)
   at Microsoft.Exchange.Provisioning.ProvisioningLayer.ProvisionDefaultProperties(Task task, IConfigurable temporaryObj
ect, IConfigurable dataObject, Boolean checkProvisioningLayerAvailability)
   at Microsoft.Exchange.Configuration.Tasks.NewTaskBase`1.InternalStateReset()
   at Microsoft.Exchange.Configuration.Tasks.NewTenantADTaskBase`1.InternalStateReset()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePip
elineIfFailed)".


The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the
<SystemDrive>:\ExchangeSetupLogs folder.
PS C:\Exchange2013CU8_Latest>

-------------------------------------------------------------------------------------------------------





Free Windows Admin Tool Kit Click here and download it now
April 9th, 2015 6:59am

Hi,

From your description, "Tried to create new default OAB but the object already exists", I recommend you delete the redundant GAL, and then continue the installation to check the result.

For your reference:

https://social.technet.microsoft.com/forums/exchange/en-US/cbeca20a-6f03-4ca8-bb07-b47bb085a970/exchange-2013-installation-error

Hope this can be helpful to you.

Best regards,

April 11th, 2015 1:33am

Hi,

Any update?

Best regards,

Free Windows Admin Tool Kit Click here and download it now
April 12th, 2015 10:21pm

Hi,

Issue was fixed after a long day of investigations. IIS should be uninstall and install from scratch to comply with the Exchange IIS 7 pre-reqs.

Very unfortunate is that the cleanup is not part of uninstall. Manual cleanup is tricky and not friendly at all.

Just for the record i hit the following troubles:

1) 

https://justaucguy.wordpress.com/2014/12/01/exchange-2013-cu6-owa-something-went-wrong/
Solution was to copy SharedWebConfig.config from other place 

2)

Issue: Cannot authenticate in OWA page since it had FBA enabled and IIS OWA auth did not have FBA
https://support.microsoft.com/en-us/kb/2871485

April 22nd, 2015 5:16am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics